package lt.vu.mif.os.provider;
/**
* Constants used in real and virtual machines.
* 
* @author Antanas Rudaitis
* @author Laurynas Paradauskas
* @author Algirdas Šaltupis
* 
*/
public interface Constants {
	/**
	 * User memory size, which starts from 0000 and ends with 2047
	 */
	public static final int userMemSize = 2400;
	/**
	 * Block size in words 
	 */
        public static final int blockSize = 10; 
	/**
	 * 1 word size in bytes
	 */
	public static final int wordSize = 4;
	/**
	 * Register size in bytes, which stores memory address
	 */
	public static final int ptrSize = 4; 
	/**
	 * Virtual machine size, which starts from 00 and ends with 255	
	 */
	public static final int vmMemSize = 240;
	/**
	 * Virtual machine memory size, which stores program code	
	 */
	public static final int vmMemCodeSize = 120;
	
	public static final int RESOURCE_INPUT = -1; 
	
	public static final int RESOURCE_CONSOLE = -2;
	
	public static final int ASKING_FOR_INPUT = 1;
	
	public static final int HAVING_INPUT = 10;
	
	public static final int ASKING_FOR_OUTPUT = 2;
	
	public static final int HAVING_OUTPUT = 20;
	
	public static final int ASKING_FOR_PROCESSOR = 3;
	
	public static final int HAVING_PROCESSOR = 30;
	
	public static final int RUNNING = 4;
	
	public static final int IDLE = 5;
	
	public static final int HALT = 6;
        
        public static final int FINISHED_STEP = 7; //maybe not used
}
